I want to trigger a workflow using a button from InfoPath form based on a choice selected vallue in the form.
Workflows can run on item add and item update.
To achieve ur requirements, you can set a field value on clicking that button and have to save that value. And in the start of the workflow use a if condition which will use the filed value which has changed on clicking the button.
List workflow is initiated either when list item is created or updated, for your case as a workaround you can use if statement in your workflow and check on the boolean field value, if the condition is true the workflow does the required actions or else end the workflow.