When a workflow is initialized the @Execute task gets invoked so that the decider can decide on the flow of tasks.
Amazon SWF doesn't need to decide which decider will handle the the request because it's your job to make sure that your decider is running and polling for new tasks:
What happens when a decider process is not running, can the SWF start the decider process and execute the flow.
No, if decider is not running, workflow will not start at all.
What happens if there are multiple decider processes, how does SWF know which one to handle the request to.
While starting the workflow, you create an instance of the decider/workflow you want to start. This instance actually decides which workflow to be called.
In practice, I have found that when a decider process is not running, sometimes the workflow gets into the "DecisionTaskStarted" state, even though no decider has accepted a decision task. This makes it appear that the workflow is not running. Presumably the decision task will timeout and the workflow will schedule a new decision task, which will get picked up by your decider (if it is now running).
If you have multiple deciders running, whichever one grabs the decision task first will process it. If you want to give different decision tasks to different deciders, give the workflows a different "task_list". The deciders with a "task_list" will only operate on their own workflows with the same task_list.