'blocking a second call' can mean just about anything, but IMO process concurrency (or restrictions thereof) should be modelled outside of the business process.
If you really must model it inside the process then you might be able to use an executionlistener on the start event of the process, and throw an exception or something when you detect that another instance of the same process is running.
Activiti has optimistic locking in place. In case two threads concurrently eg. complete the same task on a process-instance, one of them will get a "org.activiti.engine.ActivitiOptimisticLockingException". Your logic, consuming the Activiti API, can catch this and handle accordingly.