Issue is causes by vertex parent modifies original BMesh from a multiple threads. Ideally this is to be done as a separate update callback for mesh datablock, but it's not so much simple now (would need to do some re-arranges to DAG which might conflict with the work from Ali or will double amount of work we did). So for now use simple solution with mutex lock. Based on the patch from Campbell Barton with some fixes to make changes really thread-safe. Differential Revision: https://developer.blender.org/D168