sparse pca working with scikit-learn, but slow, and uses the dense matrix representation