I would add a status field to the main data source (doesn't have to show on the form) and set it to "Submitted" when the form is initially submitted. Then you can leverage that field for hiding or disabling the submit button, blocking submit via a rule condition, prevent the workflow from running via a condition, and so on.
Hilary Stoupa
