Fixed initialization process to work with backend location change.

- Also applied minor fixes to backends.initialize_selected() to check if
  backends already have been initialized and add a flag when it
  initializes them.