hope this answer is not to late.
We use activity in a clustered environment and it works pretty well without doing anything. From scratch Activiti engine is made to work on clustered mode. There is no extra configuration to be done. Just create multiple process-engines (on machine or multiple machines don't care) and connect them to the same database. All process engines connected to the same db communicate with each other (using the db) and handle by themselves.
Also Activiti documentation / forum says there is no specific need or work to do because activity itself is thread safe even on a clustered application. We use the approach described above for more than 6 months on production now and don't have issues with it.
Before starting the process you schooled check if this process has already been started for the same id (e.g. 100) just to be sure. but you can also check inside your workflow and throw an error that this has already been processed.
Works like a charm...