So I have found a way to do this. Not the most elegant, but it appears to work. It requires the scikit.sparse. If M is the matrix to be factorized we proceed as follows.
Note that the will produce matrices L and P such that PMP^T = LL^T , where L is lower triangular and P is a permutation matrix to maximize sparsity, since that is what scikit.sparse supports.
from sksparse import cholesky
from dolfin import as_backend_type, Matrix, PETScMatrix
from scipy.sparse import csr_matrix
from petsc4py import PETSc
Mmat = as_backend_type(M).mat()
S = csr_matrix(Mmat.getValuesCSR()[::-1], shape=Mmat.size)
S = S.tocsc()
factor = cholesky(S)
L_ = factor.L().tocsr()
P_ = factor.P()
IL = L_.indptr
JL = L_.indices
DL = L_.data
shape = L_shape
L = PETSc.Mat().createAIJWithArrays(shape,(IL,JL,DL))
li = list(range(len(P_)+1))
P = PETSc.Mat().createAIJWithArrays(shape,(li,P_,[1 for _ in li[1:]]))