Faits : A. A._, ressortissante allemande née en 1975, est entrée en Suisse en octobre 2014 avec sa fille B._, née en 2008, également de nationalité allemande. Au bénéfice d'un contrat de travail de durée indéterminée, elle a obtenu un permis B UE/AELE. Elle a débuté comme serveuse dans un restaurant à Vevey le 1er novembre 2014 pour un salaire mensuel net de 3'568 fr. Son activité a pris fin le 31 janvier 2015; selon A._, son employeur l'aurait licenciée lorsqu'il a appris qu'elle était enceinte. Depuis lors, l'intéressée n'a pas exercé d'autre activité lucrative et elle bénéficie des prestations du revenu d'insertion depuis le 24 avril 2015. En 2015, A._ a donné naissance à C._, de nationalité allemande. Le 27 novembre 2015, D._, ressortissant macédonien né en 1975, sans titre de séjour en Suisse et père des enfants de A._ (il a reconnu B._ et les démarches sont en cours s'agissant de C._), ainsi que celle-ci ont déposé une demande d'ouverture de procédure préparatoire de mariage. Le 4 décembre 2015, le responsable d'un salon de coiffure de Crissier a établi une attestation dont il ressort qu'il est disposé à offrir à D._ un emploi en qualité de coiffeur aussitôt que celui-ci aura obtenu une autorisation de travail. Par décision du 5 février 2016, le Service de la population du canton de Vaud (ci-après: le Service de la population) a révoqué l'autorisation de séjour UE/AELE de A._, a refusé de délivrer des autorisations de séjour pour regroupement familial à ses enfants et a prononcé le renvoi de Suisse de tous les intéressés. B. Après avoir attaqué la décision susmentionnée devant la Cour de droit administratif et public du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal cantonal), A._ a produit un contrat de travail de durée indéterminée, conclu le 1er avril 2016 et débutant le jour-même, pour un emploi de serveuse à 50 % et un salaire mensuel brut de 2'100 fr., soumis à la condition de l'octroi de " toutes les autorisations de travail nécessaires ". Le Service de la population a indiqué, le 4 mai 2016, qu'il maintenait tout de même la décision attaquée, le salaire de l'activité pressentie par A._, qualifiée de marginale et accessoire, ne permettant pas d'assurer l'entretien de la famille. Par arrêt du 8 juillet 2016, le Tribunal cantonal a rejeté le recours de A._ et de ses enfants. Il a en substance jugé que l'activité de trois mois exercée du 1er novembre 2014 au 31 janvier 2015 n'avait pas permis à l'intéressée d'obtenir le statut de travailleuse au sens de l'Accord du 21 juin 1999 entre la Confédération suisse, d'une part, et la Communauté européenne et ses Etats membres, d'autre part, sur la libre circulation des personnes (ci après: ALCP ou l'Accord sur la libre circulation; RS 0.142.112.681); en outre, celle-ci ne remplissait pas les conditions pour pouvoir séjourner en Suisse en vue de rechercher un emploi après la fin des rapports de travail, puisqu'elle ne disposait pas des moyens financiers nécessaires à son entretien et celui de ses enfants. Quant à la nouvelle activité débutée le 1er avril 2016, compte tenu du taux d'occupation réduit et du faible revenu en découlant, elle devait être qualifiée d'activité marginale et accessoire qui n'octroie pas le statut de travailleuse. C. Agissant par la voie du recours de droit public, A._ et ses enfants demandent au Tribunal fédéral, sous suite de frais et dépens, d'annuler l'arrêt du 8 juillet 2016 du Tribunal cantonal, de constater qu'ils ont droit à une autorisation de séjour et d'inviter le service intimé à délivrer les titres concernés; subsidiairement, de renvoyer le dossier aux autorités inférieures pour complément d'instruction et nouvelle décision dans le sens des considérants; ils requièrent également l'octroi de l'assistance judiciaire. Le Service de la population a renoncé à se déterminer. Le Tribunal cantonal se réfère aux considérants de son arrêt et conclut au rejet du recours. Le Service d'Etat aux migrations propose également le rejet du recours.