Lock daemons to only allow one job to run at a time

Flow is as follows:
- Lock all available daemons
- Distribute workers
- Unlock unused daemons
- Send usr_module to locked daemons
- Run job
- Daemons are unlocked when job finishes (called in __del__ of DistributionManager. Maybe this should be changed? I put it here to guarantee release of all locks)