A rule of thumb for required memory would be ‘nbf *nbf *naux/0.8’. It isn’t really possible to get an accurate measure without a fair amount of computing.
You can toy with the DFHelper object itself, but computing the initialization step to get a memory bound will take 10-15% of a full run. It is possible to reduce that, but not technology we built out for: https://github.com/psi4/psi4/blob/master/tests/python/3-index-transforms/input.py