Currently, in alfresco we can start multiple workflows on same document, however my requirement is, I need to restrict users to have only one workflow at a time.
I would add a new evaluator to the action "Start Workflow".
What you need to do is to override the start workflow action (DocLibActions in share-config-custom) and add an evaluator that checks to see if there is a already an active workflow on the document. If there is, do not display the action, if there isn't then do display the action.
There is no out-of-the-box evaluator that will do this so you will have to write your own which will require Java development but evaluators are not that complicated and you can get the source for one of the standard OOTB evaluators and use that as a framework.
There are quite a few examples of overriding document library actions on the web and a full example of custom evaluator development in on the the Alfresco Community teams blogs. Explanation of evaluators is a bit thin, but if you can read the Java code of a standard one you will see its generally quite simple concept, you tell Share to execute a Java bean that interrogates whatever you like (in your case the workflows on a document in the repository) and it returns true or false. Based on that response you either display the action on the menu or not.