The usual way would be to have "Stop spindle wait for start" option chosen in General Config and then in your code you would have a move to a safe location and then the tool call, eg T0101 or T0202 etc.
You could also have code written to the M6Start macro so that it moves to a safe location without you having to command it but I personally dont like that as it wastes time and motion as you have to go further than needed in most cases to allow for all eventualities. Much better just to write it in your code and move just enough to give you room to tool change for the part size being used at that time.
Hood