Faits :
A.
Par ordonnance du 15 octobre 2014, le Ministère public du canton de Genève a classé la procédure pénale ouverte à l'encontre de X._. Il a rejeté les prétentions en indemnité de X._ fondées sur les art. 429 al. 1 let. a et c CPP et mis les frais de la procédure, d'un montant de 350 fr., à la charge de celui-ci.
Le 3 mars 2015, la Chambre pénale de recours de la Cour de justice a rejeté le recours de X._ contre la décision du Ministère public.
Par arrêt du 5 février 2016 (6B_396/2015), le Tribunal fédéral a annulé la décision du 3 mars 2015 de la Chambre pénale de recours et lui a renvoyé la cause pour qu'elle se saisisse des griefs relatifs à l'indemnisation des dépenses occasionnées par l'exercice raisonnable des droits de procédure de X._ et la répartition des frais de la procédure préliminaire.
B.
Statuant sur renvoi le 16 mars 2016, la Chambre pénale de recours a partiellement admis le recours de X._ contre l'ordonnance du 15 octobre 2014. Elle a laissé les frais de la procédure préliminaire à la charge de l'Etat et alloué à X._ une indemnité de 6'048 fr. TTC pour ses frais de défense en procédure préliminaire. Elle a mis à la charge de X._ le quart des frais de la procédure de recours, comprenant un émolument de 1000 fr., et lui a alloué une indemnité de défense de 1000 fr. TTC pour la procédure de recours.
Le 22 mars 2017, le Tribunal fédéral a annulé cet arrêt et renvoyé la cause à l'autorité cantonale pour qu'elle rende une nouvelle décision sur la répartition des frais de la procédure de recours ainsi que sur l'indemnisation des frais de défense de X._ pour la procédure de recours (6B_477/2016).
C.
Dans son arrêt du 25 avril 2017, la Chambre pénale de recours a considéré qu'un motif qui n'avait pas été évoqué dans l'arrêt du 16 mars 2016, à savoir le rejet des prétentions de X._ en réparation du tort moral (art. 429 al. 1 let. c CPP) par arrêt du 3 mars 2015, justifiait que ce dernier supporte la moitié des frais de la procédure de recours et que son indemnité pour ses frais de défense soit réduite de moitié. Compte tenu de l'interdiction de la reformatio in pejus, elle a rendu un arrêt dont le dispositif est identique à celui du 16 mars 2016.
D.
X._ forme un recours en matière pénale au Tribunal fédéral contre ce dernier arrêt. Il conclut à l'annulation de l'arrêt attaqué et à sa réforme en ce sens que les frais sont intégralement laissés à la charge de l'Etat et qu'une indemnité de procédure de 1'836 fr. TTC lui est allouée pour la procédure de recours cantonale. Il sollicite par ailleurs l'assistance judiciaire.

Considérant en droit :
1.
Le recourant se plaint de la violation de son droit d'être entendu. Il reproche à la cour cantonale d'avoir statué à la suite de l'arrêt du Tribunal fédéral du 22 mars 2017 sans lui avoir donné la possibilité de se déterminer préalablement, et cela alors même qu'elle a retenu " un motif non invoqué dans sa décision précédente et sur lequel le Tribunal fédéral ne s'est pas prononc é " pour confirmer son précédent prononcé nonobstant l'arrêt de renvoi du Tribunal fédéral.
1.1. Le droit d'être entendu (art. 29 al. 2 Cst., ainsi que les art. 3 al. 2 let. c et 107 CPP) implique notamment le droit de l'intéressé de s'exprimer sur la cause avant qu'une décision soit rendue sur sa situation juridique (<ref-ruling> consid. 2.2.1 p. 188). La nature des questions qu'il reste à trancher détermine dans quelle mesure il subsiste un droit de s'exprimer après l'admission du recours et le renvoi de la cause à l'autorité inférieure (<ref-ruling> consid. 2 p. 139; <ref-ruling> consid. 2d p. 139 ss; plus récent: arrêt 6B_1366/2016 du 6 juin 2017 consid. 1.2). L'autorité cantonale qui statue sans entendre les parties encore une fois sur la nouvelle répartition des frais et des dépens des instances cantonales ne viole pas leur droit d'être entendues (<ref-ruling> consid. 2 p. 102 ss).
1.2. Le recourant a eu l'opportunité de se déterminer sur la question des frais et dépens dans le cadre de son recours contre l'ordonnance de classement du Ministère public. Il pouvait le faire pour toutes les éventualités quant au sort de la cause, soit l'admission partielle ou complète de ses conclusions. L'affaire renvoyée par le Tribunal fédéral à la cour cantonale ne soulevait pas de question de fait qui ne pouvait être résolue sur la base du dossier. L'autorité précédente a ainsi statué en prenant en considération un élément ressortant de la procédure, soit le rejet des prétentions en tort moral du recourant par l'arrêt du 3 mars 2015. Dans cette mesure, le recourant ne disposait pas d'un droit d'être entendu avant que la cour cantonale ne statue à nouveau.
Au demeurant, en tant que le recourant affirme que s'il avait pu se déterminer, il aurait produit un arrêt du 28 avril 2016 de la cour cantonale, il sera constaté ci-après (consid. 4.2) que cet arrêt rendu dans une autre procédure était de toute façon impropre à influencer le sort des frais et dépens dans la procédure cantonale en cause.
2.
Le recourant relève que la cour cantonale avait fixé les frais judiciaires à 800 fr. dans son premier arrêt du 3 mars 2015, à 1000 fr. dans son arrêt du 16 mars 2016, puis également à 1000 fr. dans l'arrêt attaqué. Il y voit une violation du principe de l'interdiction de la reformatio in pejus (art. 391 al. 2 CPP), dès lors que le Tribunal fédéral avait admis son recours.
2.1. La prohibition de la reformatio in pejus, dont le but est de permettre au prévenu d'exercer son droit de recours sans craindre de voir le jugement modifié en sa défaveur (<ref-ruling> consid. 2.1 p. 90; <ref-ruling> consid. 2.4.3 p. 287; arrêt 6B_879/2016 du 22 juin 2017 consid. 2.2) est consacrée par le biais de l'art. 391 al. 2 1ère phrase CPP. Cette disposition prévoit que l'autorité de recours ne peut modifier une décision au détriment du prévenu ou du condamné si le recours a été interjeté uniquement en leur faveur.
2.2. La cour cantonale a retenu, à juste titre, que l'interdiction de la reformatio in pejus trouvait application entre les décisions du 16 mars 2016 et du 25 avril 2017 en ce qui concerne la mise à la charge du recourant des frais de la procédure de recours et l'indemnité pour ses frais de défense découlant de la procédure de recours, dans la mesure où ces points faisaient l'objet du litige qui avait donné lieu à l'arrêt de renvoi du Tribunal fédéral du 22 mars 2017. En revanche, l'interdiction de la reformatio in pejus n'a pas de portée entre les arrêts du 3 mars 2015 et du 16 mars 2016 s'agissant des frais de la procédure de recours car le litige ne portait pas sur ce point. Chaque décision rendue est taxée pour elle-même, selon le coût occasionné par la décision en question et dans la fourchette prévue par la loi (en l'espèce: art. 13 du Règlement fixant le tarif des frais en matière pénale, RS GE E 4 10.03; cf. arrêt 6B_803/2016 du 20 juillet 2017 consid. 5).
Aussi, que l'émolument soit de 800 fr. dans l'arrêt du 3 mars 2015 et de 1000 fr. dans l'arrêt du 16 mars 2016 ne constituait pas une modification du jugement, sur laquelle l'interdiction de la reformatio in pejus aurait trouvé à s'appliquer. Ce grief est ainsi sans fondement.
3.
Le recourant soutient que la cour cantonale a violé le principe de l'autorité de l'arrêt de renvoi (art. 107 LTF) en retenant qu'il n'aurait obtenu que partiellement gain de cause, ce qui justifiait de mettre un quart des frais de la procédure de recours à sa charge et de réduire à 1000 fr. l'indemnité due pour ses frais de défense.
3.1. Les considérants d'un arrêt de renvoi du Tribunal fédéral (art. 107 al. 2 LTF) sont contraignants tant pour l'autorité à laquelle l'affaire est renvoyée que pour le Tribunal fédéral lui-même, lorsque celui-ci doit se prononcer à nouveau sur la cause. Ni l'autorité cantonale, ni le Tribunal fédéral ne peuvent, dans leur nouvelle décision, se fonder sur des considérations que le Tribunal fédéral a expressément ou implicitement rejetées dans l'arrêt de renvoi. A l'inverse, la nouvelle décision de l'autorité peut se fonder sur des considérations qui n'ont pas été mentionnées dans l'arrêt de renvoi ou sur lesquelles le Tribunal fédéral ne s'est pas encore exprimé (arrêt 5A_11/2013 du 28 mars 2013 consid. 3.1; cf. également: <ref-ruling> consid. 3c/bb p. 354; <ref-ruling> consid. 5.2 p. 94; arrêt 2C_1020/2011 du 16 novembre 2012 consid. 4.2 et les références citées). Aussi la cour cantonale ne viole-t-elle pas l'autorité de l'arrêt fédéral en fondant sa nouvelle décision sur un motif supplémentaire non invoqué dans son arrêt précédent et au sujet duquel le Tribunal fédéral n'a pas eu l'occasion de se prononcer (<ref-ruling> consid. 3c, bb).
3.2. La cour cantonale a constaté, à l'instar du Tribunal fédéral dans l'arrêt 6B_477/2016, que le recourant avait obtenu entièrement gain de cause sur ses conclusions relatives à l'indemnisation de ses frais de défense pour la procédure préliminaire. Toutefois, considération faite de l'ensemble des conclusions prises dans le cadre de la procédure de recours, il n'avait eu que partiellement gain de cause. En effet, si ses conclusions en rapport avec sa condamnation au paiement des frais de la procédure préliminaire et sa prétention à une indemnité pour ses frais de défense avaient été admises dans l'arrêt de la cour cantonale du 16 mars 2016, en revanche ses prétentions en réparation du tort moral avaient été rejetées dans l'arrêt du 3 mars 2015 déjà, sans qu'il ne s'en plaigne dans son recours du 20 avril 2015 auprès du Tribunal fédéral.
La cour cantonale a considéré que même si le rejet de l'une de ses conclusions n'avait pas été évoqué à l'appui de la décision rendue le 16 mars 2016, elle était libre de justifier sa nouvelle décision par le fait que le recourant avait succombé sur ses prétentions relatives à la réparation du tort moral. En effet, lorsqu'il avait examiné le bien-fondé de la répartition des frais de la procédure de recours dans son arrêt du 22 mars 2017, le Tribunal fédéral ne s'était prononcé que sur l'admission des conclusions du recourant relatives à l'indemnisation de ses frais de défense. Il n'avait pas mentionné le sort de celles relatives à la réparation du tort moral, puisqu'elles n'étaient pas critiquées devant lui.
3.3. Le recourant ne remet pas en cause le fait que, s'agissant de déterminer dans quelle mesure il avait obtenu gain de cause, seul le sort de ses conclusions relatives à l'indemnisation de ses frais de défense et la répartition des frais de la procédure préliminaire a été examiné dans l'arrêt cantonal du 16 mars 2016. En retenant que " c'est en violation du droit fédéral que la cour cantonale a considéré que le recourant n'avait pas intégralement obtenu gain de cause ", le Tribunal fédéral ne pouvait faire référence qu'à l'objet du litige porté devant lui, soit la question de savoir dans quelle mesure le recourant avait obtenu gain de cause en relation avec ses conclusions examinées dans l'arrêt attaqué. De même, en renvoyant la cause à la cour cantonale pour qu'elle réexamine le caractère raisonnable de l'activité de l'avocat en procédure de recours, le Tribunal fédéral répondait à la critique qui lui avait été soumise par le recourant en relation avec la preuve de l'activité fournie par son conseil, sans que cela ne signifie que tout autre motif de réduction de l'indemnité de défense serait exclu. Ainsi, c'est à juste titre que la cour cantonale a considéré que le Tribunal fédéral n'avait pas statué sur les conséquences du rejet de ses prétentions en tort moral sur les frais et indemnité de défense en procédure de recours, ce point ne lui ayant pas été soumis.
Partant, la cour cantonale n'a pas porté atteinte à la force contraignante de l'arrêt de renvoi en fondant sa nouvelle décision sur un motif qui n'avait pas été invoqué dans son arrêt précédent et au sujet duquel le Tribunal fédéral n'avait pas eu l'opportunité de se prononcer. Il s'ensuit le rejet du grief du recourant.
4.
Se référant à l'art. 428 al. 1 CPP, le recourant affirme que c'est à tort que la cour cantonale a retenu qu'il n'aurait eu que partiellement gain de cause.
4.1. Aux termes de l'art. 428 al. 1 1ère phrase CPP, les frais de la procédure de recours sont mis à la charge des parties dans la mesure où elles ont obtenu gain de cause ou succombé. Pour déterminer si une partie succombe ou obtient gain de cause, il faut examiner dans quelle mesure ses conclusions sont admises en deuxième instance (arrêts 6B_136/2016 du 23 janvier 2017 consid. 4.1.2; 6B_1025/2014 du 9 février 2015 consid. 2.4.1 et les arrêts cités). Lorsqu'une partie obtient gain de cause sur un point, succombe sur un autre, le montant des frais à mettre à sa charge dépend de manière déterminante du travail nécessaire à trancher chaque point (arrêts 6B_620/2016 du 17 mai 2017 consid. 2.1.2; 6B_634/2016 du 30 août 2016 consid. 3.2). Dans ce cadre, la répartition des frais relève de l'appréciation du juge du fond. Comme celui-ci est le mieux placé pour juger de son caractère approprié, le Tribunal fédéral s'impose une certaine retenue. Il n'intervient que si le juge du fond a excédé le large pouvoir d'appréciation qui lui est accordé sur ce point (arrêts 6B_620/2016 précité consid. 2.1.2; 6B_1079/2015 du 29 février 2016 consid. 5.3.1).
4.2. Comme l'a constaté la cour cantonale, dans la procédure cantonale P/1149/2014, le recourant a sollicité l'annulation de sa condamnation aux frais de la procédure arrêtés à 350 fr., l'octroi d'une indemnité de 5'842 fr. 80 pour ses frais de défense pendant la procédure préliminaire et l'allocation de 8'600 fr. avec intérêts à titre de réparation de son tort moral. Les deux premières conclusions ont été admises par arrêt de la cour cantonale du 16 mars 2016, tandis que la prétention en réparation du tort moral a été rejetée par arrêt du 3 mars 2015. Le recourant a ainsi obtenu un montant global légèrement inférieur à la moitié de celui réclamé aux termes de son recours contre l'ordonnance de classement du ministère public (14'442 fr. 80). Il n'a pas remis en cause le rejet de ses conclusions en réparation du tort moral.
Le recourant a ainsi eu partiellement gain de cause, de sorte qu'il se justifiait de lui faire supporter une partie des frais de la procédure de recours. Qu'il ait également fait valoir ses prétentions en indemnisation du tort moral dans une autre procédure, suspendue dans l'attente qu'une décision soit rendue dans la procédure P/1149/2014, et à l'issue de laquelle il a obtenu l'allocation de l'indemnité qu'il réclamait, est sans pertinence s'agissant de déterminer la répartition des frais de la procédure P/1149/2014. Par ailleurs, que la cour cantonale ne se soit pas référée au rejet de la prétention en réparation du tort moral dans son arrêt du 16 mars 2016 pour motiver sa décision ne saurait signifier que le recourant a obtenu gain de cause sur ce point, tel n'étant manifestement pas le cas. Le grief invoqué est en conséquence infondé.
Pour le surplus, le recourant ne critique pas la quote-part des frais qui sont mis à sa charge, de sorte qu'il n'y a pas lieu d'examiner ce point.
5.
Le recourant invoque la violation de l'art. 429 CPP au motif que l'indemnité pour les frais de défense de 1000 fr. allouée par la cour cantonale n'intégrerait pas la TVA.
Dans son recours cantonal du 27 octobre 2014, le recourant a justifié sa prétention en indemnisation de ses frais de défense par le calcul suivant: " 5 heures d'activité d'avocat-stagiaire à CHF 250.-/heure et 1 heure d'activité d'avocat chef d'étude à CHF 450.-/heure, soit un montant total de CHF 1'836.- TTC ". Dans son arrêt du 16 mars 2016, la cour cantonale a ramené l'indemnité à 1000 fr. TTC, montant que lui paraissait équitable au sens de l'art. 436 al. 2 CPP. Le montant de 1000 fr. TTC consiste donc en une réduction du montant de 1836 fr. TTC requis par le recourant, qui incluait la TVA. Il n'apparaît pas, dès lors, que la TVA n'aurait pas été comprise dans l'indemnité de 1000 francs. Au surplus, le recourant ne l'a pas prétendu dans son recours contre l'arrêt du 16 mars 2016.
Le postulat fondant le grief du recourant étant erroné, il y a lieu de le rejeter.
6.
Il résulte de ce qui précède que le recours doit être rejeté, dans la mesure où il est recevable.
Comme le recours était voué à l'échec, l'assistance judiciaire ne peut être accordée (art. 64 al. 1 LTF). Le recourant devra donc supporter les frais judiciaires (art. 66 al. 1 LTF), dont le montant sera toutefois fixé en tenant compte de sa situation financière, laquelle n'apparaît pas favorable (art. 65 al. 2 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La requête d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 1er septembre 2017
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Musy