Faits :
A.
Par jugement du 23 janvier 2015, le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois a condamné X._ à une peine privative de liberté de 9 mois, sous déduction de 246 jours de détention avant jugement (II) et a ordonné un traitement institutionnel des troubles mentaux au sens de l'<ref-law> (V).
Par lettre du 12 juillet 2016, X._ a requis du Tribunal des mesures de contrainte vaudois (ci-après: TMC) qu'il constate que les conditions de sa détention provisoire, dans les locaux du centre de gendarmerie de A._, du 20 mai au 17 juin 2014, étaient illicites, réservant son droit à une indemnité fondée sur l'<ref-law>.
B.
Par ordonnance du 5 août 2016, le TMC a déclaré irrecevable la demande déposée le 12 juillet et complétée le 29 juillet 2016 (I), considérant qu'il n'était pas compétent pour allouer une indemnité fondée sur l'<ref-law> et que la demande en constatation était tardive. En substance, il a retenu, s'agissant de la constatation, que le condamné avait fait preuve d'une grave négligence procédurale en déposant sa demande deux ans après les faits, contrevenant ainsi au principe de la bonne foi, et que toute instruction sur les griefs invoqués se révélerait aléatoire compte tenu du temps écoulé.
C.
Par arrêt du 22 août 2016, la Chambre des recours pénale du Tribunal cantonal vaudois a rejeté le recours formé par X._ contre la décision du TMC, qu'elle a confirmée.
D.
X._ forme un recours en matière pénale auprès du Tribunal fédéral contre l'arrêt cantonal. Il conclut à son annulation et au renvoi de la cause à la cour cantonale. Il sollicite l'octroi de l'assistance judiciaire. Invités à se déterminer sur le recours, tant le Ministère public que la cour cantonale y renoncent et se réfèrent à l'arrêt entrepris.

Considérant en droit :
1.
Selon l'<ref-law>, le recours en matière pénale est ouvert contre les décisions rendues en matière pénale, dont font partie les décisions relatives aux conditions de la détention provisoire ou pour des motifs de sûreté (<ref-ruling> consid. 1 p. 23).
2.
Selon le recourant, la cour cantonale a commis un déni de justice en refusant d'entrer en matière sur la demande en constatation des conditions illicites de détention et en indemnisation. Il invoque notamment une violation des art. 9 Cst. et 6 CEDH.
2.1. Le droit à un procès équitable reconnaît le droit d'accéder aux tribunaux à toute personne désireuse d'introduire une action, le déni de justice étant ainsi proscrit. A teneur de l'art. 29a 1ère phrase Cst., toute personne a droit à ce que sa cause soit jugée par une autorité judiciaire. Cette disposition vise à établir une garantie générale de l'accès au juge, en particulier dans le but de soumettre les actes de l'administration à un contrôle juridictionnel (<ref-ruling> consid. 4.2 p. 326 s.).
2.2. Selon la jurisprudence, lorsqu'une irrégularité constitutive d'une violation d'une garantie conventionnelle ou constitutionnelle a entaché la procédure relative à la détention provisoire, celle-ci peut être réparée par une décision de constatation (<ref-ruling> consid. 2.1 p. 352; <ref-ruling> consid. 2.5.1 p. 250; <ref-ruling> consid. 2.4 p. 85). Une telle décision vaut notamment lorsque les conditions de détention provisoire illicites sont invoquées devant le juge de la détention. A un tel stade de la procédure, seul un constat peut donc en principe intervenir et celui-ci n'a pas pour conséquence la remise en liberté du prévenu (<ref-ruling> consid. 3.4 p. 45). Il appartient ensuite à l'autorité de jugement d'examiner les possibles conséquences des violations constatées, par exemple par le biais d'une indemnisation fondée sur l'<ref-law> ou, cas échéant, par une réduction de la peine (<ref-ruling> consid. 2.1 p. 352; <ref-ruling> consid. 2.5.1 p. 250; <ref-ruling> consid. 2.1 p. 128; <ref-ruling> consid. 3.4 p. 45).
Les conclusions en constatation de droit ne sont recevables que lorsque des conclusions condamnatoires ou formatrices sont exclues. Sauf situations particulières, les conclusions constatatoires ont donc un caractère subsidiaire. Cette règle est cependant tempérée par le droit, déduit de l'art. 13 CEDH, qu'ont les personnes qui se prétendent victimes de traitements prohibés au sens des art. 10 al. 3 Cst. et 3 CEDH de bénéficier d'une enquête prompte et impartiale devant aboutir, s'il y a lieu, à la condamnation pénale des responsables. Il est, par exemple, admis que l'autorité chargée du contrôle de la détention, si elle est saisie d'allégations de mauvais traitements au sens de l'art. 3 CEDH, se doit de vérifier si la détention a lieu dans des conditions acceptables; dans de telles situations, il faut assurer immédiatement une enquête prompte et sérieuse. Il existe également un intérêt à faire constater immédiatement de telles violations lorsqu'est éloignée l'occasion de requérir devant le juge du fond une réduction de peine ou éventuellement une indemnisation (<ref-ruling> consid. 3.4.2 p. 356 et arrêts cités).
2.3. Conformément à l'art. 13 CEDH, toute personne dont les droits et libertés reconnus dans cette convention ont été violés, a droit à l'octroi d'un recours effectif devant une instance nationale, alors même que la violation aurait été commise par des personnes agissant dans l'exercice de leurs fonctions officielles. Pour qu'un système de protection des droits des détenus garantis par l'art. 3 CEDH soit effectif, des remèdes préventifs et compensatoires doivent exister de façon complémentaire. L'importance particulière de cette disposition impose que les États établissent, au-delà d'un simple recours indemnitaire, un mécanisme effectif permettant de mettre rapidement un terme à tout traitement contraire à l'art. 3 CEDH (sur ces questions cf. arrêt CourEDH Yengo c. France, requête n° 50494/12 du 21 mai 2015, § 59 et les références citées; cf. arrêts 6B_1008/2015 et 6B_1071/2015 du 18 juillet 2016 consid. 6.1).
3.
En l'occurrence, le recourant s'est adressé au TMC alors que sa détention était terminée, de sorte qu'il ne pouvait plus requérir le redressement de la situation. Seuls pouvaient entrer en considération la compensation de conditions de détention éventuellement illicites, respectivement le constat de ces conditions dans la perspective d'une indemnisation.
S'agissant du constat de l'illicéité des conditions de détention, la cour cantonale a considéré que le TMC, juridiction investie du contrôle de la détention avant jugement, était compétente pour ce faire. Cela étant, elle a estimé que la requête tendant à la constatation de l'illicéité des conditions de détention était tardive, partant irrecevable. D'après l'arrêt entrepris, il appartenait au détenu prétendant avoir subi un tort moral du fait de ses conditions de détention de saisir le TMC, au moment où il subissait un tel tort, ou en tout cas dans un délai d'une année dès la fin de la détention subie dans des conditions illicites, dès lors qu'il ne prétendait pas les avoir réalisées ultérieurement. Ce faisant, la cour cantonale a fait sienne la motivation de l'ordonnance de première instance, à teneur de laquelle le recourant avait contrevenu au principe de la bonne foi en procédure (ordonnance du TMC du 5 août 2016, p. 2). Elle s'est référée au délai de prescription d'une année dès la connaissance du dommage prévu par l'art. 7 de la loi vaudoise sur la responsabilité de l'Etat, des communes et de leurs agents (LRECA/VD; RS-VD 170.11), ainsi qu'à l'<ref-law>. Cette exigence s'imposait d'autant plus que l'écoulement du temps rendait aléatoire une instruction sur les griefs allégués (mesures d'hygiène, de sécurité, intimité, etc.).
S'agissant de l'allocation d'une indemnité, la cour cantonale a confirmé la décision du TMC selon laquelle la compétence pour ce faire appartient soit à l'autorité de jugement, soit à l'autorité saisie d'une action en responsabilité contre l'Etat, à savoir, dans le canton de Vaud, aux tribunaux ordinaires conformément à l'art. 14 LRECA/VD.
3.1. A teneur de l'art. 5 al. 3 Cst., les organes de l'Etat et les particuliers doivent agir de manière conforme aux règles de la bonne foi. Ce principe, concrétisé en procédure pénale à l'<ref-law>, ne concerne pas seulement les autorités pénales mais le cas échéant les différentes parties, y compris le prévenu. On déduit en particulier de ce principe l'interdiction des comportements contradictoires (<ref-ruling> consid. 3.2.4 p. 192 s.; <ref-ruling> consid. 2.2 p. 74; arrêts 6B_1122/2013 du 6 mai 2014 consid. 1.3; 6B_214/2011 du 13 septembre 2011 consid. 4.1.3).
Le principe de la bonne foi a pour corollaire, l'interdiction de l'abus de droit, lequel consiste notamment à utiliser une institution juridique à des fins étrangères à son but pour réaliser des intérêts que cette institution ne veut pas protéger, de telle sorte que l'écart entre le droit exercé et l'intérêt qu'il est censé protéger soit manifeste (<ref-ruling> consid. 1b p. 81; <ref-ruling> consid. 4 p. 103 s.; <ref-ruling>consid. 3a p. 211 s.; cf. pour des exemples, PIQUEREZ/MACALUSO, Procédure pénale suisse, 2011, n. 433; MARC THOMMEN, in Basler Kommentar, Schweizerische Strafprozessordnung, 2e éd. 2014, n° 78 ss ad <ref-law>; WOLFGANG WOHLERS, in DONATSCH/HANSJAKOB/LIEBER, Kommentar zur Schweizerischen Strafprozessordnung, 2e éd. 2014, n° 17 s. ad <ref-law> et les arrêts cités).
L'abus manifeste des droits reconnus par la loi peut conduire notamment à la suppression du droit conféré par la loi (cf. p. ex. ATF <ref-ruling>; cf. MARC THOMMEN, op. cit. n° 90 ad <ref-law>) ou à l'irrecevabilité du recours (cf. p. ex. <ref-ruling>).
Dans un arrêt traitant du droit d'obtenir un constat de l'illicéité des conditions de détention, le Tribunal fédéral a considéré que le seul fait, pour le détenu, de ne pas réclamer l'examen de ses conditions de détention durant la procédure pénale ne pouvait valoir renonciation, dans la mesure où aucun élément ne permettait de supposer qu'il avait contrevenu à la bonne foi en procédure (arrêt 6B_1005/2015 du 13 avril 2016 consid. 2). Il ressort de cet arrêt qu'il n'est d'ailleurs pas en soi exclu d'obtenir un constat postérieurement au jugement de condamnation, même si les conditions de détention avant jugement doivent en principe être examinées dans le cadre dudit jugement. Dans le cas précis, le recourant avait déposé une requête tendant au constat et à la réparation des conditions illicites de détention, un an et quatre mois après le jugement au fond, respectivement, deux ans et demi après son incarcération (arrêt 6B_1005/2015 du 13 avril 2016 consid. 2).
3.2. En l'espèce, la cour cantonale n'a fait que relever que le recourant avait attendu plus de deux ans après la fin de la situation prétendument illicite pour en requérir la constatation. Si l'on peut se demander pour quelle raison le recourant, dûment assisté, n'a pas immédiatement dénoncé ses conditions de détention, il ne ressort ni des décisions rendues ni du dossier, que le recourant aurait requis le constat de conditions de détention illicites, respectivement la réparation du tort moral, en visant des fins étrangères au but déduit des art. 3 et 13 CEDH (cf. supra consid. 2.2 et 2.3). En particulier, il n'est pas établi que le recourant aurait intentionnellement laissé les conditions qu'il dénonce (détention dans les locaux de la gendarmerie, absence de lumière du jour et d'accès à l'eau, etc.) se prolonger dans le temps et attendu que la procédure pénale se termine, afin d'obtenir une indemnisation financière plutôt qu'une réduction de peine en réparation du prétendu tort moral subi (cf. sur le mode de réparation, cf. <ref-ruling> consid. 4 p. 248 s.). Il n'apparaît pas davantage qu'il aurait renoncé à ses droits. Le comportement du recourant, tel que décrit dans l'arrêt entrepris, ne permet pas de retenir qu'il aurait contrevenu à la bonne foi en procédure.
Par ailleurs, sauf à constituer un déni de justice, l'aléa de l'instruction induit par le temps écoulé ne saurait priver le recourant de son droit à une enquête prompte et impartiale, respectivement au constat de ses conditions de détention.
Au vu de ce qui précède, la cour cantonale a violé le droit fédéral en refusant d'entrer en matière sur la requête en constatation des conditions de détention illicites. Le recours doit être admis sur ce point, la cause renvoyée à la cour cantonale afin qu'elle mette en oeuvre une enquête prompte et impartiale relative aux allégations de mauvais traitements (art. 3 CEDH) du recourant, cas échéant, qu'elle constate l'illicéité des conditions de détention.
3.3. La question de savoir si l'action en dommages-intérêts ou en paiement à titre de réparation morale est prescrite sous l'angle des art. 7 LRECA/VD et 60 CO n'a pas lieu d'être examinée dès lors qu'elle ne fait pas l'objet de l'arrêt entrepris. Il en va de même s'agissant de l'articulation entre ces dispositions et l'<ref-law>.
3.4. Au stade du recours cantonal, le recourant n'était pas en mesure de requérir une indemnisation du fait de ses conditions de détention illicites, faute de décision en ce sens, de sorte que l'on ne saurait reprocher à la cour cantonale d'avoir commis un déni de justice. Cependant, dans le cas où les conditions de détention doivent être reconnues comme illicites, un accès à une autorité devra être institué afin de statuer sur la question de l'indemnité (cf. s'agissant du renvoi de la cause à l'autorité compétente: arrêt 6B_63/2016 du 18 juillet 2016 consid. 1 in fine). A cet égard, il est rappelé qu'il n'y a pas lieu de considérer que le droit fédéral imposerait à une autorité pénale de statuer sur la question du droit à l'indemnisation de conditions de détention illicites avant jugement, une fois le jugement pénal en force (arrêts 6B_1071/2015 et 6B_1008/2015 du 18 juillet 2016 consid. 4.2.2 et 6B_1136/2015 du 18 juillet 2016 consid. 4.4.3).
4.
Le recourant, qui obtient gain de cause, ne supportera pas de frais. Le canton de Vaud n'a pas non plus à en supporter (art. 66 al. 1 et 4 LTF). Le recourant a droit à des dépens à la charge du canton. Cela rend sans objet sa demande d'assistance judiciaire.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis, l'arrêt attaqué est annulé et la cause est renvoyée à la cour cantonale pour nouvelle décision.
2.
Il n'est pas perçu de frais judiciaires.
3.
Le canton de Vaud versera au conseil du recourant une indemnité de 3'000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Vaud, Chambre des recours pénale.
Lausanne, le 13 septembre 2017
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Klinke