Discussing what Apache directives should be set is beyond the scope of this
document, but mod_fastcgi and mod_rewrite should be enabled. Most webhosts
have the latter enabled by default; some require you to explicitly enable
FastCGI via their control panel (Dreamhost is one such host).

Because FastCGI processes are persistent, even when you update your Python
files the old code will still be running. Usually, the following command
from your shell will be sufficient to kill the process:

$ killall -u username dispatch.fcgi

If dispatch.fcgi is running as the Apache user, i.e. www-data, you’ll need
to create a short Python stub script to call from the web in order to execute
this command. (Also, your host is doing it wrong.)

FastCGI is notoriously difficult to debug. There are variants of dispatch.fcgi
which add lots of informative debugging output; you can also rename the file
to dispatch.cgi and run as a CGI module (it will not be as fast, but will be
reloaded every request).