use setuptools/distribute in setup.py if available
handle cases where no features are extracted more gracefully