Yes, this won't work well. You should only have 1 main loop in your game.
The basic idea is to have some state manager which will have a pointer to current
GameState. You'll have a bunch of classes deriving from
GameState and having virtual functions like
handleEvent, update, etc. Once user presses the "new game" button, you go to
InGame state and change pointer to a current state, so that
currentState->handleEvent(event) calls
InGame::handleEventCheck out this example from
SFML Game Programming book, it should give you idea where to start. You should probably read the book as well, it explains a lot of concepts quite nicely.