Repository: pyscf/pyscf
Issue: NotImplementedError for Natural Orbitals with DFCASCI/DFCASSCF with SHCI

# Summary
When running `DFCASCI` calculations using an approximate CI solver (SHCI), I'm running into trouble when trying to transform the molecular orbitals into natural orbitals. When running the calculation below, `PySCF` throws a `NotImplementedError` saying neither `DFCASCI` nor `DFCASSCF` is implemented even though the same calculation with `DFCASSCF` runs fine.

## Minimum Working Example
```python
from pyscf import gto, scf, mcscf
from pyscf.shciscf import shci

mol = gto.M(atom="C 0 0 0; C 0 0 1;", basis="ccpvtz", verbose=3)
mf = scf.RHF(mol).density_fit()
mf.kernel()
mc = mcscf.CASCI(mf, 8, 8)
mc.fcisolver = shci.SHCI(mol)
mc.natorb = True
mc.kernel()
print(mc.mo_occ[2:10])
```

Output
```
converged SCF energy = -75.2564149322307
Traceback (most recent call last):
  File "/mnt/home/jsmith/apps/test/pyscf/casci_natorb.py", line 9, in <module>
    mc.kernel()
  File "/mnt/home/jsmith/apps/amd-rome/pyscf/pyscf/mcscf/casci.py", line 875, in kernel
    self.canonicalize_(mo_coeff, self.ci,
  File "/mnt/home/jsmith/apps/amd-rome/pyscf/pyscf/mcscf/casci.py", line 944, in canonicalize_
    canonicalize(self, mo_coeff, ci, eris,
  File "/mnt/home/jsmith/apps/amd-rome/pyscf/pyscf/mcscf/casci.py", line 427, in canonicalize
    mo_coeff1, ci, mc.mo_occ = mc.cas_natorb(mo_coeff, ci, eris, sort, casdm1,
  File "/mnt/home/jsmith/apps/amd-rome/pyscf/pyscf/mcscf/casci.py", line 924, in cas_natorb
    return cas_natorb(self, mo_coeff, ci, eris, sort, casdm1, verbose,
  File "/mnt/home/jsmith/apps/amd-rome/pyscf/pyscf/mcscf/casci.py", line 315, in cas_natorb
    raise NotImplementedError('cas_natorb for DFCASCI/DFCASSCF')
NotImplementedError: cas_natorb for DFCASCI/DFCASSCF
```

## Suggested Solution
I think we can just remove this `if` block in lines 314-315 below because lines 316-319 don't care whether DF is there or not.

https://github.com/pyscf/pyscf/blob/9291e74890069d522efdd1f0505c12e27530fa64/pyscf/mcscf/casci.py#L314-L319

I commented these lines out and things ran fine for me.

## Next Steps
If people agree with this, I can open a PR with the changes.

Changed files:
pyscf/mcscf/casci.py

diff --git a/pyscf/mcscf/casci.py b/pyscf/mcscf/casci.py
index 4f4df1206..03723e2d5 100644
--- a/pyscf/mcscf/casci.py
+++ b/pyscf/mcscf/casci.py
@@ -312,11 +312,13 @@ def cas_natorb(mc, mo_coeff=None, ci=None, eris=None, sort=False,
             aaaa = ao2mo.incore.full(aaaa, ucas)
         else:
             if getattr(mc, 'with_df', None):
-                raise NotImplementedError('cas_natorb for DFCASCI/DFCASSCF')
+                aaaa = mc.with_df.ao2mo(mocas)
+            else:
+                aaaa = ao2mo.kernel(mc.mol, mocas)
             corevhf = mc.get_veff(mc.mol, dm_core)
             ecore += numpy.einsum('ij,ji', dm_core, corevhf) * .5
             h1eff += reduce(numpy.dot, (mocas.conj().T, corevhf, mocas))
-            aaaa = ao2mo.kernel(mc.mol, mocas)
+
 
         # See label_symmetry_ function in casci_symm.py which initialize the
         # orbital symmetry information in fcisolver.  This orbital symmetry